package logic

import (
	"fmt"
	"io/fs"
	"io/ioutil"
	"os"
)

/*
	.go:文件夹处理文件
	author : 朝游东海
*/


//------------------------判断文件是否存在------------------------//
/*
	func  	判断文件或目录是否存在
	link 原文链接：https://blog.csdn.net/leo_jk/article/details/118255913
	author  zydh[朝游东海]
	param 	path string 		文件路径
	return	bool	返回信息
*/

func FileOrDirIsExist(path string)(bool bool){
	_,err:= os.Stat(path)
	if err == nil{
		return true
	}

	if os.IsNotExist(err){
		return false
	}
	return false
}



//------------------------删除文件------------------------//

/*
	func  	根据文件路径删除文件路径下所有文件
	author  zydh[朝游东海]
	param 	path string 		文件路径
	return	bool	返回信息
*/
func DelAllFileByPath(path string)(bool bool,errInfo error){
	//defer wg.Done()
	if FileOrDirIsExist(path){
		err := os.RemoveAll(path);if err != nil{
			return false,err
		}
		return true,errInfo
	}
	return true,errInfo
}


func GetAllFile(pathname string) error {
	//fmt.Println("pathname",pathname)
	//writeChan( pathname)
	writeValToChan(pathname,pathChan)
	rd, err := ioutil.ReadDir(pathname)
	for _, fi := range rd {
		if fi.IsDir() {
			//fmt.Printf("[%s]\n", pathname+"\\"+fi.Name())
			//writeChan( pathname+"\\"+fi.Name() )

			GetAllFile(pathname + fi.Name() + "\\")
		} else {
			//writeChan( pathname+fi.Name() )
			//fmt.Println(pathname+fi.Name())
		}
	}
	return err
}



// GetFileNameByPath 获取文件的名字
func GetFileNameByPath(path string) string {
	fo,err := os.Stat(path)
	if err != nil{
		//log.Error("open file fail ,file path:" + path,err)
		return ""
	}
	return fo.Name()
}


//根据文件路径只扫描当前路径下的文件
func getOneDirAllFileOrDirPath(path string) []fs.FileInfo{
	files, err := ioutil.ReadDir(path);if err != nil {
		//log.Fatal(err)
		fmt.Println("读取文件路径下所有的问价失败，路径：错误：",path,err)
		return nil
	}else{
		return files
	}
}